﻿using Ewk.MachineLearning.Genetic.Programming.Program.Terminals;
using Microsoft.VisualStudio.TestTools.UnitTesting;

namespace Ewk.MachineLearning.Genetic.Programming.UnitTests.Program
{
    public abstract class ProgramUnitTestBase
    {
        protected FunctionFactory FunctionFactory { get; private set; }

        [TestInitialize]
        public void TestInitialize()
        {
            FunctionFactory = new FunctionFactory();
        }

        protected static Variable Int
        {
            get { return new Variable(typeof(int), "X"); }
        }

        protected static Constant Three
        {
            get { return new Constant(3, typeof(double)); }
        }

        protected static Constant Five
        {
            get { return new Constant(5, typeof(int)); }
        }

        protected static Constant Seven
        {
            get { return new Constant(7, typeof(int)); }
        }
    }
}